perm filename SORT.LSP[206,JMC] blob sn#260596 filedate 1977-01-29 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(DEFUN MERGE (U V) (COND ((NULL U) V) ((NULL V) U)
C00004 ENDMK
CāŠ—;
(DEFUN MERGE (U V) (COND ((NULL U) V) ((NULL V) U)
((LESSP (CAR U) (CAR V)) (CONS (CAR U)
(MERGE (CDR U) V))) (T (CONS (CAR V) (MERGE U(CDR V))))))

(DEFUN SORT1 (U) (SORT11 U NIL))

(DEFUN SORT11 (U V) (COND ((NULL U) (SORT111 NIL V))
(T (SORT11 (CDR U) (SORT112 (LIST (CAR U)) V)))))

(DEFUN SORT112 (U V) (COND ((NULL V) (LIST U))
((NULL (CAR V)) (CONS U (CDR V)))
(T (CONS NIL (SORT112 (MERGE U (CAR V)) (CDR V))))))

(DEFUN SORT111 (U V) (COND ((NULL V) U)
(T (SORT111 (MERGE U (CAR V)) (CDR V)))))

(defun sort2 (u) (sort21 (mapcar '(lambda (x) (list x)) u)))

(defun sort21 (u) (cond ((null u) nil) ((null (cdr u)) (car u))
(t (sort21 (sort211 u)))))

(defun sort211 (u) (cond ((or (null u) (null (cdr u))) u)
(t (cons (merge (car u) (cadr u)) (sort211 (cddr u))))))